package edu.hunau.annotation;

import java.lang.annotation.*;

/**
 * JDK的元注解
 * @Retention：注解保存的时机
 *  RetentionPolicy.SOURCE :注解在源码时有效，编译时舍弃
 *  RetentionPolicy.CLASS : 注解在编译成class文件时有效，运行时舍弃（默认值）
 *  RetentionPolicy.RUNTIME:源码，编译，运行时都存在
 *@Target 声明注解能够在类中哪些资源中使用。
 * @author hb
 * @date 2022-11-22 17:13:28
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
@Documented //javadoc工具提取文档
@Inherited //声明该注解具有继承性。如果某个类使用了@My，其子类自动被@My注解
/***
 * @My
 * public class Goo{}
 * class Koo extends Goo{} //Koo默认被@My注解
 */
public @interface My {
    //注解属性的定义
    String tag() default "";
    int level() default 1;
}
